# 魔法方法
# __xxx__() 这种格式的方法
# 有特殊功能

# 1. __init__()
# 创建对象时执行的方法                        # 魔法方法 相当于在

# 2. __str__()
# 给print提供打印内容的方法
# 如果提供了这个方法啊,print(对象)打印的就是这个方法返回的内容

class Dog():

    # __init__() 对象创建的时候会被执行 执行一些初始化的
    def __init__(self):
        # print("__init__执行")
        self.name = "小狗"
        self.age = 1

    # 带参数的初始化
    # def __init__(self,name,age):
    #     print("__init__执行")
    #     self.name = name
    #     self.age = age

    # 定义方法
    # self调用方法的对象，会自动传入
    def watchDor(self):
        print(self.name+":看门")
    def sleep(self):
        print(self.name+":zzzzz")

    # 提供给print()方法打印输出对象信息
    def __str__(self):
        return f"{self.name},{self.age}"

# d1 = Dog()
# print(d1.name)
# print(d1.age)

# d1 = Dog()
# d1.name = "小白"
# d1.age = 2

# d2 = Dog()
# d1.name = "阿黄"
# d1.age = 3

d3 = Dog()
# print(f"{d3.name},{d3.age}")

print(d3)
